Various forms of storage systems are used today. These forms include direct attached storage (DAS) network attached storage (NAS) systems, storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up data and others.
A storage system typically includes at least one computing system executing a storage operating system for storing and retrieving data on behalf of one or more client computing systems (“clients”). The storage operating system stores and manages shared data containers in a set of mass storage devices.
Storage systems are being used extensively in virtual environments where a physical resource is time-shared among a plurality of independently operating processor executable virtual machines. Typically, storage space is presented to a virtual machine as a virtual hard disk (VHD) file. A storage drive (for example, C:\) is then presented to a user via a user interface within a virtual machine context. The user can use the storage drive to access storage space to read and write information.
Replicating (or backing-up, used interchangeably throughout this specification) virtual machines today is challenging. Conventional techniques today use snapshot technology to replicate (or backup, used interchangeably throughout this specification) virtual machines and the associated files. A snapshot is a point in time copy of a storage volume at any given time.
Snapshot technology has inherent limitations because typically, a storage system allows a fixed number of snapshots (for example, 255) for a logical storage container that may have hundreds or thousands of virtual machines. The VMs may not all be replicated at the same time because they may be assigned to different clients, business groups and others. As an example, assume that there are 100 VMs in a storage container and assume that only 10 VMs can be replicated at the same time, then only 25 snapshots can be generated for each VM. If each VM is replicated separately, then only 2 snapshots can be generated for each VM. This is undesirable today, especially in the popular social media and cloud computing environments, where data is constantly changing and one may need more than 2 or 25 snapshots. Continuous efforts are being made to efficiently replicate virtual machines and their associated files.